/*
mentrixmax.
Todos os direitos reservados
Nome do projeto : Teste
Nome do módulo  : Negocio
Data de início  : 14/08/2013
Responsável(is) : Mateus Neto
Observações  : 
Contato : mentrixmax@gmail.com
*/
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using DAO;
using Entidades;
using Menfram.Business.Abstract;
using Menfram.Common.Exceptions;
namespace Negocio
{
    /// <summary>
    ///  classe de negocio referente a tabela: tbBairro
    /// </summary>
    public class BairroNegocio : AbstractBusiness<BairroEntidade>
    {
        /// <summary> 
        /// retorna a classe BairroDAO
        /// </summary>
        /// <returns>IDAO</returns>
        public override Menfram.DAL.Interface.IDAL<BairroEntidade> getDAO()
        { return BairroDAO.getInstance(); }

        /// <summary>
        /// metodo de validação no create
        /// Mateus Neto
        /// </summary>
        /// <param name="e">IEntidade</param>
        /// <returns>bool</returns>
        public override bool validaCreate(BairroEntidade e)
        {
            BairroEntidade obj = e;
            if ((obj.Codigo == null) || obj.Codigo.ToString() == string.Empty)
            {
                throw new RequeridFieldKeyException();
            }
            if ((obj.Descricao == null) || obj.Descricao.ToString() == string.Empty)
            {
                throw new RequeridFieldKeyException();
            }
            return true;
        }

        /// <summary>
        /// metodo de validação do update
        /// Mateus Neto
        /// </summary>
        /// <param name="e">IEntidade</param>
        /// <returns>bool</returns>
        public override bool validaUpdate(BairroEntidade e)
        {
            BairroEntidade obj = e;
            if ((obj.Sequencial == null) || obj.Sequencial.ToString() == string.Empty)
            {
                throw new RequeridFieldKeyException();
            }
            if ((obj.Codigo == null) || obj.Codigo.ToString() == string.Empty)
            {
                throw new RequeridFieldKeyException();
            }
            if ((obj.Descricao == null) || obj.Descricao.ToString() == string.Empty)
            {
                throw new RequeridFieldKeyException();
            }
            return true;
        }

        #region Singleton

        /* atributo privado */

        private static BairroNegocio obj;

        /* construtor privado implementacao singleton*/

        private BairroNegocio() { }

        /*  metodo de implementação do singleton */

        public static BairroNegocio getInstance()
        {
            if (obj == null)
            { obj = new BairroNegocio(); }

            return obj;

        }

        #endregion
    }
}
